package org.student.action;

import org.apache.log4j.Logger;
import org.student.entity.PageInfo;

import com.opensymphony.xwork2.ActionSupport;


/**
 * 项目名称:
 * 类名称: SuperAction
 * 类描述: 所有Action都必须继承该类，该类为所有Action的基类
 * 创建人：严植培
 * 创建时间: 2011-9-1 下午02:16:18
 */
@SuppressWarnings("all")
public class SuperAction extends ActionSupport {

	private Logger log = Logger.getLogger(this.getClass()) ; // 实例化Logger对象
	private PageInfo pageInfo = new PageInfo() ; // 分页对象
	
	/**
	 * 取得操作用户名称
	 * @return 取得用户名称
	 * @throws Exception
	 */
	public String getLoginedUserName() throws Exception {
		/*SysUser sysUser = (SysUser) (ActionContext.getContext().getSession().get("LOGINUSER")) ; // 取得操作用户名称
		if (sysUser != null) {
			return sysUser.getUserName() ; // 取得用户名称
		} else {
			HttpServletResponse response = ServletActionContext.getResponse() ; // 取得HttpServletResponse对象
			String loginPage = ServletActionContext.getRequest().getContextPath() + "/login.jsp" ; // 取得跳转路径
			response.sendRedirect(loginPage) ; // 重定向页面
		}*/
		return null;
	}
	
	/**
	 * 取得错误信息
	 * @param e 异常对象
	 * @return 错误信息
	 * @throws Exception
	 */
	public String getExceptionString(Exception e) throws Exception {
		if (e != null) {
			return e.toString() ; // 取得错误信息
		} else {
			return null ;
		}
	}
	
	/**
	 * 记录成功日志
	 * @param opModule 模块名称
	 * @param opType 操作类型
	 * @param opContent 操作内容
	 * @throws Exception
	 */
	protected void logSuccessString(String opModule, String opType,String opContent) throws Exception {
		StringBuffer sb = new StringBuffer();
		sb.append(getLoginedUserName());// 取得操作用户名称
		sb.append("_") ;
		sb.append(opModule) ; // 模块名称
		sb.append("_") ;
		sb.append(opType); // 操作类型
		sb.append("_") ;
		sb.append(opContent) ; // 操作内容
		sb.append("_") ;
		sb.append("1") ; // 操作成功
		log.warn(sb.toString()) ;
	}
	
	/**
	 * 记录失败日志
	 * @param opModule 模块名称
	 * @param opType 操作类型
	 * @param opContent 操作内容
	 * @param e 异常对象
	 * @throws Exception
	 */
	protected void logFailureString(String opModule, String opType,String opContent, Exception e) throws Exception {
		StringBuffer sb = new StringBuffer() ;
		sb.append(getLoginedUserName());// 操作用户名称
		sb.append("_") ;
		sb.append(opModule) ; // 模块名称
		sb.append("_") ;
		sb.append(opType) ; // 操作类型
		sb.append("_") ;
		sb.append(opContent) ; // 操作内容
		sb.append(getExceptionString(e)) ; // 异常信息
		sb.append("_") ;
		sb.append("0") ; // 操作失败
		log.error(sb.toString()) ;
	}

	public Logger getLog() {
		return log;
	}

	public void setLog(Logger log) {
		this.log = log;
	}

	public PageInfo getPageInfo() {
		return pageInfo;
	}

	public void setPageInfo(PageInfo pageInfo) {
		this.pageInfo = pageInfo;
	}
	
}
